package com.demarc.pesquisas.web.converter;

import java.io.Serializable;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

import org.apache.commons.lang3.StringUtils;

import com.demarc.pesquisas.infraestrutura.web.jsf.JsfUtil;
import com.demarc.pesquisas.negocio.entidade.entrevistador.Entrevistador;
import com.demarc.pesquisas.negocio.service.entrevistador.IEntrevistadorService;

@FacesConverter(value = "EntrevistadorConverter", forClass = Entrevistador.class)
public class EntrevistadorConverter implements Converter, Serializable {

	/** {@inheritDoc} */
	@Override
	public Object getAsObject(FacesContext context, UIComponent component,
			String value) {

		Entrevistador entrevistador = null;
		if (StringUtils.isNotBlank(value) && StringUtils.isNumeric(value)) {
			entrevistador = getEntrevistadorService().buscarPor(
					Long.valueOf(value));
		}
		return entrevistador;
	}

	/** {@inheritDoc} */
	@Override
	public String getAsString(FacesContext context, UIComponent component,
			Object object) {

		String valor = null;
		if (object instanceof Entrevistador) {
			Entrevistador entrevistador = (Entrevistador) object;
			if (entrevistador.getId() != null) {
				valor = entrevistador.getId().toString();
			}
		}
		return valor;
	}

	private IEntrevistadorService getEntrevistadorService() {
		return (IEntrevistadorService) JsfUtil.getBean("entrevistadorService");
	}
}
